import numpy as np

print("测试两个数组的对应元素是否足够接近，比较allclose()和isclose()".center(50, '='))
# 将两列表转换为数组x、y
# 两方法区别在于：numpy.isclose输出a，b两个数组每个位置判断的bool值，而numpy.allclose输出的是a，b两个数组整体的判断结果。
x = np.array([1, 2, 3, 4.001, 5])
y = np.array([1, 1.999, 3, 4.01, 5.1])
print(np.allclose(x, y))  # allclose()用于匹配两个数组，输出为布尔值，默认在1e-05的误差范围内。
print(np.allclose(x, y, rtol=0.2))  # 设置相对误差参数，rtol是容许的相对最大误差系数，默认值是1.0e-5，则容许误差为rtol * abs(b)
print(np.allclose(x, y, atol=0.2))  # 设置绝对误差参数，atol是a和b数组分别求和比较绝对值的差别
print(np.isclose(x, y))  # isclose()，比较两个array是不是每一元素都相等，默认在1e-05的误差范围内。
print(np.isclose(x, y, atol=0.2))  # 设置绝对误差参数，比较每一个元素，单独输出bool值
